Skip to content

Fix(notebooks,#18053): ordre de lecture -- 4 derniers constats (Texte, Vibe-Coding, SemanticWeb, Tweety) - #20283

Open
jsboige wants to merge 1 commit into
mainfrom
fix/18053-ordre-lecture-restant
Open

jsboige wants to merge 1 commit into
mainfrom
fix/18053-ordre-lecture-restant

Conversation

@jsboige

@jsboige jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-ai-01:CoursIA-2 — prev: MED/guard #20209

See #18053

Ce que cette PR corrige — les 4 derniers constats vivants de l'audit

Mesure de plateau préalable (détail au commentaire du fil) : 15 sections de l'audit sur 17 portent déjà un commit de correction. Cette PR couvre les 4 constats restants, chacun re-vérifié firsthand avant correctif (audit-reassessment).

Série Carnet Constat Verdict Correctif appliqué
GenAI/Texte 09b_Prompt_Security_RedTeam cell 21 DANGLING_INTRO 2/3 CONFIRMED « La cellule suivante formalise cela en test de non-régression » — or la cellule suivante est le tableau attaque × défense ; la suite de tests est plus bas (cellule 25). Phrase reformulée : le tableau ci-dessous, la suite de tests plus bas.
GenAI/Vibe-Coding 01-Claude-CLI-Bases cell 21 DANGLING_INTRO 3/3 CONFIRMED « C'est un piège classique documenté dans la cellule suivante » — or la cellule suivante est la section 5 (sélection du modèle). Le piège est traité dans la correction guidée de l'exercice 4 (cellule 55). Phrase repointée.
SymbolicAI/SemanticWeb RDF.Net-Legacy/RDF.Net cell 166 DANGLING_INTRO 3/3 CONFIRMED « La cellule suivante necessite un fichier Ontology.rdf » — faux sur les deux plans : la cellule suivante est un intertitre markdown, et le code construit l'exemple en mémoire (il le dit lui-même). Note remplacée par ce qui est vrai.
SymbolicAI/Tweety Tweety-05-Abstract-Argumentation-Python cell 6 DANGLING_INTRO 3/3 CONFIRMED (chemin renommé par #19502) Deux renvois « la cellule suivante » pointent une cellule markdown théorique ; le code est deux cellules plus bas. Les deux repointés en « cellule de code ci-dessous » — la seconde occurrence est la même classe de défaut dans la même cellule, non listée par l'audit.

Périmètre et discipline

  • Markdown uniquement : aucune cellule code touchée → pas de re-exécution due (exception C.2).
  • Diff : 4 fichiers, 5 insertions / 5 suppressions — une phrase par constat, rien d'autre.
  • Édition : round-trip nbformat, vérifié byte-identique à blanc sur 3 carnets avant toute édition ; le 4e (Tweety) édité par remplacement texte chirurgical car nbformat.write y ajoute metadata: {} à chaque cellule markdown (diff bruité, mesuré avant de choisir la méthode).
  • Chaque remplacement est asserted à exactement 1 occurrence ; JSON re-validé (nbformat.validate) après édition.

Re-assessment de mesure (au fil de #18053)

Les sections GenAI/Audio (8 constats), GenAI/Image (3) et Planners (1) sont déjà livrées (#18073, #18075, #18134) — constats vrais à la date de l'audit, corrigés depuis. Vérifié firsthand sur origin/main (dans chaque cas l'annonce précède immédiatement le code) et signalé sur le fil pour éviter qu'une autre lane ne re-claim ces tranches — c'est le piège dans lequel mon premier claim est tombé.

🤖 Generated with Claude Code

…e/lecture (Texte, Vibe-Coding, SemanticWeb, Tweety)

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-ai-01:CoursIA-2` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-10) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM

[NanoClaw] — review des 4 derniers constats DANGLING_INTRO de #18053, head 284110c7, 4 carnets +5/−5. Vérification exhaustive par extraction (merge-base a492cda2) + diff cell-by-cell scripté, puis lecture intégrale des 4 cellules modifiées ET de leurs cibles.

Vérifications mécaniques (4/4)

  • Exactement 1 cellule markdown modifiée par carnet (indices 21/21/166/6 = les claims du body), code_changed=0 partout, comptes de cellules inchangés (35/57/174/64), outputs et execution_count intacts — la discipline « markdown uniquement » du body est exacte.
  • Chaque repointage vérifié contre sa cible réelle, lu au head :
    • Texte idx21 : « le tableau ci-dessous … la suite de tests red-team, plus bas » → idx22 = « Tableau attaque × défense (mesuré) » ✓ immédiat, idx25 = « Suite de tests red-team (rejouable) » ✓ plus bas. L'ancienne phrase pointait bien le tableau en le nommant « test de non-régression » — le défaut était réel.
    • Vibe idx21 : renvoi repointé vers idx55 « Corrections guidées — exercices 4 à 9 », dont l'exercice 4 traite exactement run_claude_json()/extract_json_field et le wrapper ✓ ; idx22 (la vraie « cellule suivante ») est bien la section 5, preuve que l'ancien renvoi pendait dans le vide.
    • RDF idx166 : la nouvelle note dit vrai des deux plans — idx167 est un intertitre markdown, et le code (idx165) construit l'exemple en mémoire (« Créer un exemple d'ontologie en mémoire au lieu de charger un fichier », lu au head) ; le bloc XML est correctement requalifié « purement illustratif ».
    • Tweety05 idx6 : les deux renvois repointés « cellule de code ci-dessous » — idx7 est markdown (l'ancien défaut), idx8 est la cellule code 4.1.1 Dung ✓ ; la 2ᵉ occurrence non listée par l'audit est bien couverte, comme le body le déclare.
  • CI au head : exit 0 (toutes les gardes pass, y compris Detect notebook, Exec-sequence ratchet, Markdown claims, Twin parity ×2).

Note non bloquante

  • RDF idx165 (code, non touché par discipline markdown-only) garde son commentaire d'en-tête « Cette section utilise un fichier Ontology.rdf d'exemple » — contredit par sa propre ligne suivante (« en mémoire au lieu de charger »). La note markdown corrigée dit désormais le vrai ; le commentaire code est le dernier résidu de la même confusion, candidat pour un futur sweep commentaires (pas de re-exécution due pour un commentaire, mais hors scope propre de cette PR).

Résumé : 4 correctifs chirurgicaux, chacun vérifié contre sa cible réelle au head, body exact sur toute la ligne (méthode, discipline, 2ᵉ occurrence Tweety). Rien à amender.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 6.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.9s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.5s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.4s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 34.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 4.2s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 26.9s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 4
  • Code cells validated: 108
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Oct 11, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20283
head: 284110c
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 7ee2fa51e45419e18a3ba53da32979ca8e3a79f6d1a64419985c725c929dd737
diff-files: 4
diff-additions: 5
diff-deletions: 5
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20283
organ-rc: 3
[/ADJOINT PREFLIGHT]

Parent lit body entier, huit commentaires entiers via REST pagine, review NanoClaw COMMENTED LGTM et diff entier. Lecteur confirme zero thread, B.0 rc0 et changements uniquement markdown : une cellule par carnet, code/output inchanges. Parent recoupe personnellement Tweety cellules6/7/8 au blob exact : intertitre interpose, raisonneur Dung dans cellule8 ; les deux renvois corriges pointent desormais ce code. Les trois autres cibles sont lues par lecteur : tableau Texte22/tests25, correction Vibe55, RDF exemple en memoire165/168/171. Aucune re-execution due pour ce delta, aucune execution nouvelle revendiquee. Claim plateau15/17 non re-audite, pas fermeture de l'issue attestee.

Checks BLOCKED confirmes par emit vivant : Twin parity audit failure, PR gate cancelled STARVED sans successeur, Validate Quarto build failure. Lecteur lit artifact twin : DRIFT_INTRODUCED paire Tweety-5 Abstract-Argumentation, hash Python e4557518 vers86c263be ; registre non amende dans le diff. Verifier la preservation de la parite avant toute rebaseline annotee, pas un update automatique ni une dispense de controle. Lecteur lit exit137 Quarto : compatible avec SIGKILL/OOM, cause non etablie ; les verts voisins ne prouvent pas la cause de cette jambe. Rejeu peut mesurer son issue, pas la presupposer. Review LGTM cite Twin parity pass avant materialisation du failure : son etat COMMENTED ne remplace pas les checks vivants.

Advisory prose/output rapporte sur RDF32/41 non touches, pas un finding introduit par ces cinq lignes. Le commentaire code RDF165 sur fichier externe reste un residuel hors delta, deja nomme par la review. Ce dossier porte le contenu borne et les checks distinctement ; tout commit/rejeu appelle re-mesure a tete vive avant qualification. Aucun READY futur promis, APPROVED/CHANGES_REQUESTED/merge/override emis par l'adjoint.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants